<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>The E3 Project</title>
  </head>

  <body>
    <center>
      <h1><u>The Explorer III Project</u></h1>
    </center>
    <hr>

    <p><h3>The E3 Project aims to develop a portable software emulator of the
      <a href="http://www.ti.com/corp/docs/company/history/artificial.shtml">TI Explorer II</a>
      Lisp machine.</h3>

    <p>In 1983 <a href="http://www.ti.com">Texas Instruments</a> (TI) licensed
      the rights to produce an MIT-derived Lisp machine from Lisp Machine
      Incorporated (LMI).  LMI was one of two companies (the other was
      <a href="http://www.symbolics.com">Symbolics</a>) spun off from the MIT
      Artificial Intelligence Laboratory in order to develop workstations
      descending from the MIT CONS and CADR, computers which ran an operating
      system and environment written entirely in Lisp.

     <p>Also in 1983 TI purchased the Nu Machine and the NuBus (again children
      of MIT) from <a href="http://www.westerndigital.com">Western Digital</a>.
      The Nu Machine was the hardware platform of the LMI Lambda, LMI's second
      generation Lisp machine.  Using the Nu Machine and NuBus platform, TI
      produced their own flavor of Lisp machine, the TI Explorer.
      (Subsequently LMI acquired from TI the right to sell their own version
      of the Explorer.)

    <p>Further development of the Explorer hardware continued at TI and in
      1987 TI introduced the Explorer II based around a custom CPU, the
      553k-transistor MegaChip.  As with the discrete IC-based Explorer I
      processor, the Explorer II MegaChip was a microcode processor which ran
      software that executed Lisp-specific macrocode instructions.  Unlike the
      Explorer I processor, the Explorer II used a 64-bit microcode rather
      than a 56-bit microcode.  The macrocode executed by both processors was
      however only 16-bits, with 32-bit type-tagged and CDR-coded data.
      Following the Explorer II TI created the MicroExplorer, an Explorer II
      system built on a single Apple NuBus card that ran inside a Mac II
      series computer (eg the IIfx, Quadra 950).

    <p>The principal goal of the E3 Project is to develop a software emulation
      of the macrocode executor that ran on all versions of the Explorer (with
      a few changes from model to model).  Since the microcode for both the E1
      and E2 was larger than the 32-bit machine word on most of today's common
      desktop systems (56 and 64-bit, respectively) the E3 is not
      designed as an emulator of an Explorer microcode processor.
      Instead it emulates the 16-bit macroinstruction set and
      processes the 32-bit tagged data that the macroinstructions
      operate upon.

    <p>The emulator (known as 'E3', or the 'Explorer III') is desgined to run
      as an ordinary user program on most modern desktop workstations.  It is
      intended to be portable between different processor architectures and
      different operating systems.  It is also intended to be an open
      development project, with little licensing restrictions.  A license has
      not yet been developed, but it is assumed that the current status of the
      project falls somewhere under the MIT X or BSD-style license.

    <p>The project has a
      <a href="http://www.unlambda.com/mailman/listinfo/lispm-hackers">mailing
        list</a> for communication amongst the developers.  A
      <a href="http://www.unlambda.com/cgi-bin/viewcvs.cgi/e3/">CVS
        repository</a> is used to maintain the source code.  This repository
      is open for viewing with web browsers but pserver and write access are
      restricted.  There is also a
      <a href="http://www.unlambda.com/mailman/listinfo/lispm-cvs">mailing
        list</a> for the CVS repository to which commit logs are
      automatically posted.  It is recommended that if you intend to
      hack on E3 that you also join this list.

    <p>Anonymous read-only access to the CVS server is available.  The
      following commands give an example of using anonymous CVS access.

      <blockquote>
        <pre>
          $ cvs -d :pserver:anoncvs@cvs.unlambda.com:/home/cvsroot login
          CVS password: [empty]
          $ cvs -d :pserver:anoncvs@cvs.unlambda.com:/home/cvsroot checkout e3
          cvs server: Updating e3
          U e3/.ctypes
          U e3/.cvsignore
          U e3/Makefile
          U e3/TODO
          U e3/app.cc
          U e3/app.h
          [...]
        </pre>
    </blockquote>

    <p>A <a href="current-e3-output.txt">snapshot</a> of the output from a
      recent revision of the sources is available.  The system is not
      completely booted yet, but it goes far enough to find the first
      function in the band and dump its contents.  An occasionally
      updated <a href="e3.tar.gz">tarball</a> of the sources is also
      available.  To use the program you must also have a load band.
      We have collected two <a href="explorer-bands/">load bands</a>
      for the Explorer II, one of which (<tt>N928.LOAD</tt>) is our
      test candidate.  The other remains to be investigated.  Both of
      these are <i>large</i> files, greater than 9 MB in compressed
      form.  Please only download them if you need them.  You can get
      them <a href="explorer-bands/">here</a>.

    <p>Before starting to hack the emulator please join the mailing
      list.  Once on the list you can ask for CVS pserver write
      access.  To actually test and hack the emulator you will also
      need the load band which the emulator boots from as well as the
      Lisp sources to the operating system.  Both files are quite
      large, be warned.  To decrease repetetive questioning about how
      to get started we now have some 
      <a href="hacking-intro.html">notes on the subject</a>.

    <p>The list of platforms which E3 has been tested on is given
      below.  If you have compiled and tested E3 on a platform other
      than the ones given here please write to the mailing list and
      let us know the results.
    <center>
      <table border=1>
        <caption>Tested Platforms</caption>
        <th>
          <tr align=center>
            <td><b>Operating System</b></td>
            <td><b>Architecture</b></td>
            <td><b>Date</b></td>
            <td align=left><b>Results</b></td>
          </tr>
        </th>
        <tbody>
          <tr align=center>
            <td>Linux</td>
            <td>x86</td>
            <td>now</td>
            <td align=left>Primary development platform.</td>
          </tr>
          <tr align=center>
            <td>Linux</td>
            <td>UltraSparc (IIi)</td>
            <td>2001-Dec-31</td>
            <td align=left>Correct output.</td>
          </tr>
          <tr align=center>
            <td>MacOS X</td>
            <td>PPC G3</td>
            <td>2001-Dec-31</td>
            <td align=left>Correct output.</td>
          </tr>
          <tr align=center>
            <td>Windows 2k (Cygwin)</td>
            <td>x86</td>
            <td>??</td>
            <td align=left>Bad includes, correct output.</td>
          </tr>
        </tbody>
      </table>
    </center>

    <p>Documentation on the internals of the Explorer is scarce.  The one
      particularly important document that is available is the
      <a href="explorer-docs/e3-docs/">System Software Design Notes</a>, 2nd
      revision.  This document can be had either in a single PostScript or PDF
      file, or as PDF files of individual chapters.  Please do not download
      these arbitrarily as they are all <i>large</i> files consisting of
      scanned images.  As of 2002-Jan-5 (3168-Cha-5) text versions of
      certain sections are available (following the above link)
      courtesy of Alastair Bridgewater.  More may appear if he or some
      other adventurous soul is inspired to convert other sections of
      the document.

    <p>For historical interest we present the <a href="memo528.html">paper</a>
      which introduced the CADR, the second MIT Lisp machine.  It is also
      available in <a href="memo528.pdf">PDF format</a>.

    <p><center><img src="Explorer1.jpeg"></center>
    <p><center><img src="RIP.jpeg"></center>

    <hr>
    <address><a href="mailto:james@unlambda.com">James A. Crippen</a></address>
<!-- Created: Mon Sep 10 17:11:43 AKDT 2001 -->
<!-- hhmts start -->
Last modified: Sat Jan  5 20:16:20 AKST 2002
<!-- hhmts end -->
  </body>
</html>
